Skip to content

Conversation

@sethmlarson
Copy link
Contributor

@sethmlarson sethmlarson commented Jan 12, 2026

Created a list of files and directories that should trigger a re-run of the python3-libraries fuzzers. Now that the Python repository is the home for this fuzzer it should be easier for Python core developers to fix issues with the fuzzer in case there are issues.

Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could also rename most of the "library"/"libraries"/"LIBRARY" to "stdlib"/"STDLIB" and it'd be clearer this is running on the standard library and not any third-party library code.

@sethmlarson
Copy link
Contributor Author

I think we could also rename most of the "library"/"libraries"/"LIBRARY" to "stdlib"/"STDLIB" and it'd be clearer this is running on the standard library and not any third-party library code.

I agree with this, we can change most of our uses to "stdlib" within this PR except for oss-fuzz-project-name. I can handle that in a separate PR since we'll have to wait for OSS-Fuzz maintainers to rename the project.

@sethmlarson
Copy link
Contributor Author

Thanks @StanFromIreland and @hugovk for the reviews! I've moved to a reusable workflows approach. I'll try pushing a commit modifying one of the libraries to check that the workflow fires correctly.

@hugovk
Copy link
Member

hugovk commented Jan 13, 2026

(I resolved the conflict)

Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <578543+webknjaz@users.noreply.github.com>
@sethmlarson
Copy link
Contributor Author

@webknjaz I'm not sure why actionlint is refusing the contains([...], 'true') syntax used, checking on the allowed function definitions it seemed like this would be allowed?

@sethmlarson
Copy link
Contributor Author

With the latest commit we got a run, but the values of oss-fuzz-project-name and sanitizer aren't being forwarded (the reusable workflow is seeing an empty string?) from the job matrix into the reusable workflow. I don't think I'm doing anything different than any of the other reusable workflows that use a matrix and forward parameters?

@webknjaz
Copy link
Member

@webknjaz I'm not sure why actionlint is refusing the contains([...], 'true') syntax used, checking on the allowed function definitions it seemed like this would be allowed?

Not sure. Might be a bug in actionlint. Or maybe I misunderstood that this'd work from the docs 🤷‍♂️

@webknjaz
Copy link
Member

With the latest commit we got a run, but the values of oss-fuzz-project-name and sanitizer aren't being forwarded (the reusable workflow is seeing an empty string?) from the job matrix into the reusable workflow. I don't think I'm doing anything different than any of the other reusable workflows that use a matrix and forward parameters?

Sounds like maybe I messed up the suggested conditionals or something. I'll double-check the current diff.

@webknjaz
Copy link
Member

One more thing — in general, it's a good idea to keep the CI infra the same (at least structurally) across branches since this will reduce conflicts when backporting more important changes. So this will need to be backported if possible. Either partially or, if there's no problems — in full. The backwards compat considerations would almost never apply to the CI infra the same way it'd apply to the user-facing changes.

Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@hugovk
Copy link
Member

hugovk commented Jan 16, 2026

A brief note on CI time. These three jobs take about 22 minutes, which is fine:

  • CIFuzz / python3-libraries (undefined) 22m 36s
  • CIFuzz / python3-libraries (address) 20m 38s
  • CIFuzz / python3-libraries (memory) 22m 14s

https://github.com/python/cpython/actions/runs/21006197138/usage

We have a few other jobs taking around this long, like Android and iOS and some Windows ones, with one free-threaded Windows being the bottleneck at 32 mins.

image

Just something to keep an eye on.

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks all!

@hugovk hugovk merged commit edeebe2 into python:main Jan 16, 2026
61 checks passed
@github-project-automation github-project-automation bot moved this from 🧐 @webknjaz's review queue 📋 to 🌈 Done 🦄 in 📅 Procrastinating in public Jan 16, 2026
@miss-islington-app
Copy link

Thanks @sethmlarson for the PR, and @hugovk for merging it 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14.
🐍🍒⛏🤖

@miss-islington-app
Copy link

Sorry, @sethmlarson and @hugovk, I could not cleanly backport this to 3.14 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker edeebe22cb6bff3df4196bef3dcbdc7044f54df6 3.14

@miss-islington-app
Copy link

Sorry, @sethmlarson and @hugovk, I could not cleanly backport this to 3.13 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker edeebe22cb6bff3df4196bef3dcbdc7044f54df6 3.13

@sethmlarson
Copy link
Contributor Author

@hugovk I can work on creating backports. Thanks for the reviews, everyone!

@bedevere-app
Copy link

bedevere-app bot commented Jan 16, 2026

GH-143912 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app bot removed the needs backport to 3.14 bugs and security fixes label Jan 16, 2026
sethmlarson added a commit to sethmlarson/cpython that referenced this pull request Jan 16, 2026
…Fuzz (pythonGH-143749)

(cherry picked from commit edeebe2)

Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <578543+webknjaz@users.noreply.github.com>
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
@bedevere-app
Copy link

bedevere-app bot commented Jan 16, 2026

GH-143915 is a backport of this pull request to the 3.13 branch.

@bedevere-app bedevere-app bot removed the needs backport to 3.13 bugs and security fixes label Jan 16, 2026
@sethmlarson sethmlarson deleted the detect-library-fuzzers-for-prs branch January 16, 2026 16:41
runs-on: ubuntu-latest
timeout-minutes: 60
# ${{ '' } is a hack to nest jobs under the same sidebar category.
name: CIFuzz${{ '' }} # zizmor: ignore[obfuscation]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reflecting on this a bit, I think we could've interpolated one of the factors to produce separate categories.

-     name: CIFuzz${{ '' }}  # zizmor: ignore[obfuscation]
+     name: CIFuzz (${{ matrix.oss-fuzz-project-name }})

We can still do this in follow-ups if you @sethmlarson think it's a good idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants